.TH std::imag(std::complex) 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::imag(std::complex) \- std::imag(std::complex)

.SH Synopsis
   Defined in header <complex>
   template< class T >
   T imag( const std::complex<T>& z           \fI(until C++14)\fP
   );
   template< class T >
   constexpr T imag( const                    \fI(since C++14)\fP
   std::complex<T>& z );
   Additional overloads \fI(since C++11)\fP
   Defined in header <complex>
   float       imag( float f );

   double      imag( double f );                            \fI(until C++14)\fP

   long double imag( long double f );
   constexpr float       imag( float
   f );                               \fB(1)\fP

   constexpr double      imag( double                       \fI(since C++14)\fP
   f );                                                     (until C++23)
                                          (A)
   constexpr long double imag( long
   double f );
   template< class FloatingPoint >
   FloatingPoint imag( FloatingPoint                        (since C++23)
   f );
   template< class Integer >                                              \fI(until C++14)\fP
   double imag( Integer i );
   template< class Integer >                  (B)
   constexpr double imag( Integer i                                       \fI(since C++14)\fP
   );

   1) Returns the imaginary part of the complex number z, i.e. z.imag().

   A,B) Additional overloads are provided for all integer and
   floating-point types, which are treated as complex numbers with zero   \fI(since C++11)\fP
   imaginary part.

.SH Parameters

   z - complex value
   f - floating-point value
   i - integer value

.SH Return value

   1) The imaginary part of z.
   A) decltype(f){} (zero).
   B) 0.0.

.SH Notes

   The additional overloads are not required to be provided exactly as (A,B). They only
   need to be sufficient to ensure that for their argument num:

     * If num has a
       standard
       (until C++23) floating-point type T, then std::imag(num) has the same effect as
       std::imag(std::complex<T>(num)).
     * Otherwise, if num has an integer type, then std::imag(num) has the same effect
       as std::imag(std::complex<double>(num)).

.SH See also

   imag accesses the imaginary part of the complex number
        \fI(public member function)\fP
   real returns the real part
        \fI(function template)\fP
   C documentation for
   cimag
